﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;
using BL = class_BL;
using EN = class_Entidad;

namespace WebMenu.Pagina
{
    public partial class frmRecetaRegistro : System.Web.UI.Page
    {
        public void cargarDepartamento()
        {
            List<EN.UBIGEO_EN> lista = new List<EN.UBIGEO_EN>();
            EN.PARAM_UBIGEO_EN objItem = new EN.PARAM_UBIGEO_EN();
            objItem.NIVEL = 1;
            objItem.COD_UBIGEO = "";

            lista = BL.ITEMS_BL.listaUbigeo(objItem);
            foreach (var item in lista)
            {
                ddlDepartamento.Items.Add(new ListItem(Convert.ToString(item.DESCRIPCION), Convert.ToString(item.COD_UBIGEO)));
            }
        }

        public void cargarProvincia()
        {
            List<EN.UBIGEO_EN> lista = new List<EN.UBIGEO_EN>();
            EN.PARAM_UBIGEO_EN objItem = new EN.PARAM_UBIGEO_EN();
            objItem.NIVEL = 2;
            objItem.COD_UBIGEO = ddlDepartamento.SelectedValue;

            lista = BL.ITEMS_BL.listaUbigeo(objItem);
            foreach (var item in lista)
            {
                ddlProvincia.Items.Add(new ListItem(Convert.ToString(item.DESCRIPCION), Convert.ToString(item.COD_UBIGEO)));
            }
        }

        public void CrearTablaTemporal()
        {
            DataTable tbIngrediente = new DataTable("Ingrediente");
            tbIngrediente.Columns.Add("ID_ITEMS", typeof(Int32));
            tbIngrediente.Columns.Add("ID_PRODUCTO", typeof(Int32));
            tbIngrediente.Columns.Add("ID_PRECIO", typeof(Int32));
            tbIngrediente.Columns.Add("DESC_ITEMS", typeof(string));
            tbIngrediente.Columns.Add("NOM_PROD", typeof(string));
            tbIngrediente.Columns.Add("PRECIO_CIGV", typeof(string));
            ViewState["Ingrediente"] = tbIngrediente;
        }

        public void cargarTipoPlato()
        {
            List<EN.ITEMS_EN> lista = new List<EN.ITEMS_EN>();
            EN.ITEMS_EN objItem = new EN.ITEMS_EN();
            objItem.ID_ITEMS = 0;
            objItem.DESC_ITEMS = "";
            objItem.ID_PADRE = 3;

            lista = BL.ITEMS_BL.ListaITEMSGrupo(objItem);
            foreach (var item in lista)
            {
                ddlTipo.Items.Add(new ListItem(Convert.ToString(item.DESC_ITEMS), Convert.ToString(item.ID_ITEMS)));
            }
        }

        public void cargarClasePlato()
        {
            List<EN.ITEMS_EN> lista = new List<EN.ITEMS_EN>();
            EN.ITEMS_EN objItem = new EN.ITEMS_EN();
            objItem.ID_ITEMS = 0;
            objItem.DESC_ITEMS = "";
            objItem.ID_PADRE = 7;

            lista = BL.ITEMS_BL.ListaITEMSGrupo(objItem);
            foreach (var item in lista)
            {
                ddlClase.Items.Add(new ListItem(Convert.ToString(item.DESC_ITEMS), Convert.ToString(item.ID_ITEMS)));
            }
        }

        public void cargarTipoProd()
        {
            List<EN.ITEMS_EN> lista = new List<EN.ITEMS_EN>();
            EN.ITEMS_EN objItem = new EN.ITEMS_EN();
            objItem.ID_ITEMS = 0;
            objItem.ID_PADRE = 1;
            objItem.DESC_ITEMS = "";

            try
            {
                lista = BL.ITEMS_BL.ListaITEMSGrupo(objItem);
                foreach (var item in lista)
                {
                    ddlTipoProd.Items.Add(new ListItem(Convert.ToString(item.DESC_ITEMS), Convert.ToString(item.ID_ITEMS)));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void cargarProvedor()
        {
            EN.PARAM_PREC_PROV_PROD_EN param = new EN.PARAM_PREC_PROV_PROD_EN();
            List<EN.PROVEEDOR_EN> Lista = new List<EN.PROVEEDOR_EN>();
            param.vConsulta = 1;
            param.vCOD_UBIGEO = ddlDepartamento.SelectedValue + ddlProvincia.SelectedValue + "00"; // debe de tomar la info de Depa y Prov
            param.vID_TPROD = Convert.ToInt32(ddlTipoProd.SelectedValue);
            param.vID_PROVEEDOR = 0;
            param.vID_PRODUCTO = 0;
            try
            {
                Lista = BL.PREC_PROV_PROD_BL.listaProveedor_PPP(param);
                foreach (var item in Lista)
                {
                    ddlProveedor.Items.Add(new ListItem(Convert.ToString(item.RAZON_SOC), Convert.ToString(item.ID_PROVEEDOR)));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void cargaProd()
        {
            EN.PARAM_PREC_PROV_PROD_EN param = new EN.PARAM_PREC_PROV_PROD_EN();
            List<EN.PRODUCTO_EN> Lista = new List<EN.PRODUCTO_EN>();
            param.vConsulta = 2;
            param.vCOD_UBIGEO = ddlDepartamento.SelectedValue + ddlProvincia.SelectedValue + "00";
            param.vID_TPROD = Convert.ToInt32(ddlTipoProd.SelectedValue);
            param.vID_PROVEEDOR = Convert.ToInt32(ddlProveedor.SelectedValue);
            param.vID_PRODUCTO = 0;
            try
            {
                Lista = BL.PREC_PROV_PROD_BL.listaProducto_PPP(param);
                foreach (var item in Lista)
                {
                    ddlProd.Items.Add(new ListItem(Convert.ToString(item.NOM_PROD), Convert.ToString(item.ID_PRODUCTO)));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void CargarPrecio()
        {
            EN.PARAM_PREC_PROV_PROD_EN param = new EN.PARAM_PREC_PROV_PROD_EN();
            List<EN.PREC_PROV_PROD_EN> Lista = new List<EN.PREC_PROV_PROD_EN>();
            param.vConsulta = 3;
            param.vCOD_UBIGEO = ddlDepartamento.SelectedValue + ddlProvincia.SelectedValue + "00"; // debe de tomar la info de Depa y Prov
            param.vID_TPROD = Convert.ToInt32(ddlTipoProd.SelectedValue);
            param.vID_PROVEEDOR = Convert.ToInt32(ddlProveedor.SelectedValue);
            param.vID_PRODUCTO = Convert.ToInt32(ddlProd.SelectedValue);
            try
            {
                Lista = BL.PREC_PROV_PROD_BL.listaPrecioProducto_PPP(param);

                foreach (var item in Lista)
                {
                    hdIdPrecio.Value = Convert.ToString(item.ID_PRECIO);
                    hdPrecio.Value = Convert.ToString(item.PRECIO_CIGV);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void AgregarIngrdiente()
        {
            DataTable tbIngrediente = new DataTable();
            DataRow fila;
            tbIngrediente = (DataTable)ViewState["Ingrediente"];
            tbIngrediente = tbIngrediente.Copy();
            fila = tbIngrediente.NewRow();
            fila["ID_ITEMS"] = Convert.ToInt32(ddlTipoProd.SelectedValue);
            fila["ID_PRODUCTO"] = Convert.ToInt32(ddlProd.SelectedValue);
            fila["ID_PRECIO"] = Convert.ToInt32(hdIdPrecio.Value);
            fila["DESC_ITEMS"] = ddlTipoProd.SelectedItem.Text;
            fila["NOM_PROD"] = ddlProd.SelectedItem.Text;
            fila["PRECIO_CIGV"] = hdPrecio.Value;
            tbIngrediente.Rows.Add(fila);
            ViewState["Ingrediente"] = tbIngrediente;

            gvProducto.DataSource = tbIngrediente;
            gvProducto.DataBind();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlDepartamento.Items.Add(new ListItem("--Seleccionar--", "-2"));
                ddlProvincia.Items.Add(new ListItem("--Seleccionar--", "-2"));
                ddlTipo.Items.Add(new ListItem("--Seleccionar--", "-2"));
                ddlClase.Items.Add(new ListItem("--Seleccionar--", "-2"));
                ddlTipoProd.Items.Add(new ListItem("--Seleccionar--", "-2"));
                ddlProveedor.Items.Add(new ListItem("--Seleccionar--", "-2"));
                ddlProd.Items.Add(new ListItem("--Seleccionar--", "-2"));

                cargarDepartamento();
                CrearTablaTemporal();
                cargarTipoPlato();
                cargarClasePlato();
                cargarTipoProd();
            }
        }

        protected void ddlDepartamento_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlDepartamento.SelectedValue != "-2")
            {
                ddlProvincia.Items.Clear();
                ddlProvincia.Items.Add(new ListItem("--Seleccionar--", "-2"));
                cargarProvincia();
            }
            else
            {
                ddlProvincia.Items.Clear();
                ddlProvincia.Items.Add(new ListItem("--Seleccionar--", "-2"));
            }
        }

        protected void ddlTipoProd_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlTipoProd.SelectedValue != "-2")
            {
                ddlProveedor.Items.Clear();
                ddlProd.Items.Clear();
                ddlProveedor.Items.Add(new ListItem("--Seleccionar--", "-2"));
                ddlProd.Items.Add(new ListItem("--Seleccionar--", "-2"));
                cargarProvedor();
            }
            else
            {
                ddlProveedor.Items.Clear();
                ddlProveedor.Items.Add(new ListItem("--Seleccionar--", "-2"));
                ddlProd.Items.Clear();
                ddlProd.Items.Add(new ListItem("--Seleccionar--", "-2"));
            }
        }

        protected void ddlProveedor_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlProveedor.SelectedValue != "-2")
            {
                ddlProd.Items.Clear();
                ddlProd.Items.Add(new ListItem("--Seleccionar--", "-2"));
                cargaProd();
            }
            else
            {
                ddlProd.Items.Clear();
                ddlProd.Items.Add(new ListItem("--Seleccionar--", "-2"));
            }
        }

        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            AgregarIngrdiente();
        }

        protected void ddlProd_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlProd.SelectedValue != "-2")
            {
                CargarPrecio();
            }
            else
            {
                hdIdPrecio.Value = "";
                hdPrecio.Value = "";
            }
        }

        protected void btnCantidades_Click(object sender, EventArgs e)
        {
            GenerarTabla();
        }
        public void GenerarTabla()
        {
            lbTabla.Text = "";
            GridView gv = new GridView();
            gv = gvProducto;

            string tabla = string.Empty;
            int NroTabla = 3;
            int NroFilas = gv.Rows.Count;
            for (int i = 0; i < NroTabla; i++)
            {
                tabla = tabla + "<table id='idTbCliente_" + i + "' style='width:350px;'>" +
                                           "<tr><td colspan='7' style='text-align:center; width:300px'>Cliente " + i + "</td></tr>" +
                                           "<tr><td></td><td>UM</td><td>CANT</td><td>Nº PAX</td><td>CANT</td><td>V.U</td><td>V.T</td></tr>";

                int j = 0;
                foreach (GridViewRow row in gv.Rows)
                {
                    string strID_ITEMS = row.Cells[4].Text;
                    string strID_PRODUCTO = row.Cells[5].Text;
                    string strPRECIO_CIGV = row.Cells[3].Text;

                        tabla = tabla +
                        "<tr>" +
                        "<td><input id='hdIdTipoProd1_" + i + "_" + j + "' type='hidden' value='" + strID_ITEMS + "' />" +
                        "<input id='hdIdProd1_" + i + "_" + j + "' type='hidden' value='" + strID_PRODUCTO + "' /></td>" +
                        "<td><input id='Text1_" + i + "_" + j + "' type='text' style='width:50px' /></td>" +
                        "<td><input id='Text2_" + i + "_" + j + "' type='text' style='width:50px' class='alinearNumero' value='0' onkeypress='isInteger(this);' /></td>" +
                        "<td><input id='Text3_" + i + "_" + j + "' type='text' style='width:50px' class='alinearNumero' value='0' onkeypress='isInteger(this);' /></td>" +
                        "<td><input id='Text4_" + i + "_" + j + "' type='text' style='width:50px' class='alinearNumero' value='0' onkeypress='isInteger(this);' /></td>" +
                        "<td d='Text5_" + i + "_" + j + "' class='alinearNumero'>" + strPRECIO_CIGV + "</td>" +
                        "<td><input id='Text6_" + i + "_" + j + "' type='text' style='width:50px' class='alinearNumero' isInteger(this);' /></td></tr>";
                        j++;
                }
                tabla = tabla + "<tr><td></td>" +
                "<td colspan='5' style='text-align:right'>Total :</td>" +
                "<td><input id='Text7_" + i + "' type='text'  style='width:50px'class='alinearNumero' value='0' /></td>" +
                "</tr></table>";
            }
            lbTabla.Text = tabla;
        }
    }
}